package model;

import java.util.ArrayList;
import java.util.List;
/**
 * Classe que monta todos os campo do tabuliero
 * Classe foi prjetada seguindo o Patterne Singloton
 */
public class Tabuleiro {
    private static Tabuleiro tabuleiro;
    private List<Quadro> quadros;

    public Tabuleiro() {
        quadros = new ArrayList<>();
        Quadro q = new Quadro(0,false,"Ponto de Partida", "/resource/img/inicio.png",false);
        quadros.add(q);
        q = new Quadro(1,true,"Leblon \n Preço 100", "/resource/img/roxo.png",true);
        quadros.add(q);
        q = new Quadro(2,false,"Sorte - Revés", "/resource/img/sorte.png",false);
        quadros.add(q);
        q = new Quadro(3,true,"Av. Presidente Vargas \nPreço 60", "/resource/img/roxo.png",true);
        quadros.add(q);
        q = new Quadro(4,true,"Av. Nossa S. de Copacabana \nPreço 60", "/resource/img/roxo.png",true);
        quadros.add(q);
        q = new Quadro(5,true,"Companhia Ferroviária \nPreço 200", "/resource/img/trem.png",false);
        quadros.add(q);
        q = new Quadro(6,true,"Av. Brigadeiro Faria Lima \nPreço 200", "/resource/img/psina.png",true);
        quadros.add(q);
        q = new Quadro(7,true,"Companhia de Viação \nPreço 200", "/resource/img/onibus.png",false);
        quadros.add(q);
        q = new Quadro(8,true,"Av. Rebouças \nPreço 220", "/resource/img/psina.png",true);
        quadros.add(q);
        q = new Quadro(9,true,"Av. 9 de Julho \nPreço 220", "/resource/img/psina.png",true);
        quadros.add(q);
        q = new Quadro(10,false,"Prisão\nVisitantes", "/resource/img/prisao.png",false);
        quadros.add(q);
        q = new Quadro(11,true,"Av. Europa \nPreço 200", "/resource/img/azul_forte.png",true);
        quadros.add(q);
        q = new Quadro(12,false,"Sorte - Revés", "/resource/img/sorte.png",false);
        quadros.add(q);
        q = new Quadro(13,true,"Av. Augusta\nPreço 180", "/resource/img/azul_forte.png",true);
        quadros.add(q);
        q = new Quadro(14,true,"Av. Pacaembú \nPreço 180", "/resource/img/azul_forte.png",true);
        quadros.add(q);
        q = new Quadro(15,true,"Companhia de Táxi \nPreço 150", "/resource/img/taxi.png",false);
        quadros.add(q);
        q = new Quadro(16,false,"Sorte - Revés", "/resource/img/sorte.png",false);
        quadros.add(q);
        q = new Quadro(17,true,"Interlagos\nPreço 350", "/resource/img/laranja.png",true);
        quadros.add(q);
        q = new Quadro(18,false,"Lucros e Dividendos\nPreço 200", "/resource/img/dinheiro.png",false);
        quadros.add(q);
        q = new Quadro(19,true,"Morumbi\nPreço 400", "/resource/img/laranja.png",true);
        quadros.add(q);
        q = new Quadro(20,false,"Parada Livre", "/resource/img/parada.png",false);
        quadros.add(q);
        q = new Quadro(21,true,"Flamengo\nPreço 120", "/resource/img/vermelho.png",true);
        quadros.add(q);
        q = new Quadro(22,false,"Sorte - Revés", "/resource/img/sorte.png",false);
        quadros.add(q);
        q = new Quadro(23,true,"Botafogo\nPreço 100", "/resource/img/vermelho.png",true);
        quadros.add(q);
        q = new Quadro(24,false,"Imposto de Renda\nPreço -200", "/resource/img/imposto.png",false);
        quadros.add(q);
        q = new Quadro(25,true,"Companhia de Navegação \nPreço 150", "/resource/img/navio.png",false);
        quadros.add(q);
        q = new Quadro(26,true,"Av. Brasil\nPreço 160", "/resource/img/amarelo.png",true);
        quadros.add(q);
        q = new Quadro(27,false,"Sorte - Revés", "/resource/img/sorte.png",false);
        quadros.add(q);
        q = new Quadro(28,true,"Av. Paulista\nPreço 140", "/resource/img/amarelo.png",true);
        quadros.add(q);
        q = new Quadro(29,true,"Jardim Europa\nPreço 140", "/resource/img/amarelo.png",true);
        quadros.add(q);
        q = new Quadro(30,false,"Vá para prisão", "/resource/img/ir_prisao.png",false);
        quadros.add(q);
        q = new Quadro(31,true,"Copacabana\nPreço 260", "/resource/img/verde.png",true);
        quadros.add(q);
        q = new Quadro(32,true,"Companhia de Aviação\nPreço 200", "/resource/img/aeroporto.png",false);
        quadros.add(q);
        q = new Quadro(33,true,"Av. Vieira Souto\nPreço 320", "/resource/img/verde.png",true);
        quadros.add(q);
        q = new Quadro(34,true,"Av. Atlântica\nPreço 300", "/resource/img/verde.png",true);
        quadros.add(q);
        q = new Quadro(35,true,"Companhia de Táxi Aéreo\nPreço 200", "/resource/img/helicoptero.png",false);
        quadros.add(q);
        q = new Quadro(36,true,"Ipanema\nPreço 300", "/resource/img/verde.png",true);
        quadros.add(q);
        q = new Quadro(37,false,"Sorte - Revés", "/resource/img/sorte.png",false);
        quadros.add(q);
        q = new Quadro(38,true,"Jardim Paulista\nPreço 200", "/resource/img/azul.png",true);
        quadros.add(q);
        q = new Quadro(39,true,"Brooklin\nPreço 260", "/resource/img/azul.png",true);
        quadros.add(q);
    }

    public static Tabuleiro getTabuleiro() {
        if (tabuleiro == null) {
            tabuleiro =  new Tabuleiro();
        }
        return tabuleiro;
    }

    public List<Quadro> getQuadros() {
        return quadros;
    }    
    
    public void clear(){
        for (Quadro quadro : quadros) {
            quadro.clear();
        }
    }
   
    public void setDodo(List<Propriedades> list,String dono){
        for (Propriedades propriedades : list) {
            getQuadros().get(propriedades.getIdCampo()).setDono(dono);
            getQuadros().get(propriedades.getIdCampo()).addImovel(propriedades.getNumeroCasas());
        }
    }
}
